 /*******************************************************************************
  * Copyright (c) 2005, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.core.commands.operations;

 /**
  * IContextReplacingOperation defines an interface for undoable operations that
  * can replace one undo context with another undo context. It is used by
  * operations, such as composite operations, where removing and adding an undo
  * context would not have the same semantic as replacing one undo context with
  * another.
  *
  * @since 3.2
  *
  */
 public interface IContextReplacingOperation {

     /**
      * Replace the undo context of the receiver with the provided replacement
      * undo context.
      * <p>
      * This message has no effect if the original undo context is not present in
      * the receiver.
      *
      * @param original the undo context which is to be replaced
      * @param replacement the undo context which is replacing the original
      *
      */
     void replaceContext(IUndoContext original, IUndoContext replacement);
 }

